package com.xjc.study.operatingexamination.honour;

import java.util.*;

/**
 * @author xujiucheng 荣耀
 * 题目描述
 * 某程序员小A，有一种表格数据需要存储在文件中。表格中的每一行，由若干个字段组成，
 * 每个字段可以是整数或字符串（字符串只包含数字、字母以及特殊字符!@#%^&*()",）。小A设计了一种存储格式，
 * 采用文本的方式对表格数据进行存储。文本文件中的每一行，代表了表格数据中的一行数据。具体格式描述如下：
 * 1、采用逗号分隔不同的字段（逗号前后无空格）；
 * 2、数字直接采用10进制的文本存储；
 * 3、字符串的存储规则如下：
 * 1）如果字符串中包含逗号以及双引号，则字符串必须在头尾各增加一个双引号，且中间的双引号需要用连续两个双引号来表示。
 * 例如：“a,”“b”，表示字符串a,"b；
 * 2）如果字符串中未包含逗号以及双引号，则字符串不强制要求在头尾各增加一个双引号，可直接存储。例如：abc，或者"abc"都可以；
 * 4、空字符串不存储任何字符，例如：a,b中，有3个字段，分别为a,空字符串,b；
 * 请帮助小A设计一个算法，用来将单行文本，解析成多个字段，并输出。
 * 输入描述
 * 用于存储单行表格数据的一行文本。
 * 输出描述
 * 如果输入字符串格式不正确，则输出结束。
 * 如果字符串格式正确，则输出每个字段的值，每个字段单独占一行。数字采用10进制输出，字符串输出接卸后的值。
 * 输入
 * a,,1,"b,"""
 * 输出
 * 4
 * a
 * --
 * 1
 * b,"
 */
public class SymbolTest {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String s = sc.nextLine();
        sc.close();
        char[] c = s.toCharArray();
        int count = 0;
        for (char cc : c) {
            if (cc == '\"') {
                count++;
            }
        }
        if (count % 2 == 1) {
            System.out.println("ERROR");
            return;
        }
        List<String> list = new ArrayList<>();
        StringBuilder sb = new StringBuilder();
        boolean flag = false;
        for (int i = 0; i < c.length; i++) {
            if (c[i] == '\"' && !flag) {
                flag = true;
            }
            if (c[i] == ',' && !flag) {
                String temp = sb.length() == 0 ? "--" : sb.toString();
                list.add(temp);
                sb = new StringBuilder();
            } else if (c[i] == '\"' && flag && (i + 1 == c.length || c[i + 1] == ',')) {
                sb.deleteCharAt(0);
                String temp = sb.length() == 0 ? "--" : sb.toString();
                list.add(temp);
                sb = new StringBuilder();
                i++;
            } else if (c[i] == '\"' && flag && (i + 1 == c.length || c[i + 1] == '\"')) {
                sb.append('\"');
                i++;
            } else {
                sb.append(c[i]);
            }
        }
        System.out.println(list.size());
        for (String ss : list) {
            System.out.println(ss);
        }
    }
}